using System;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("KAR12_Portals")]
	public class KAR12_Portals : KAR_MissionEntity
	{
		public static string m_introSpellPath => MonoClass.smethod_8(TritonHs.MainAssemblyPath, "", "KAR12_Portals", "m_introSpellPath");

		public Spell m_introSpellInstance => method_3<Spell>("m_introSpellInstance");

		public KAR12_Portals(IntPtr address, string className)
			: base(address, className)
		{
		}

		public KAR12_Portals(IntPtr address)
			: this(address, "KAR12_Portals")
		{
		}

		public new void StartGameplaySoundtracks()
		{
			method_8("StartGameplaySoundtracks");
		}

		public new void PreloadAssets()
		{
			method_8("PreloadAssets");
		}

		public new void PlayEmoteResponse(EmoteType emoteType, CardSoundSpell emoteSpell)
		{
			method_8("PlayEmoteResponse", emoteType, emoteSpell);
		}

		public new void NotifyOfRealTimeTagChange(Entity entity, Network.HistTagChange tagChange)
		{
			method_8("NotifyOfRealTimeTagChange", entity, tagChange);
		}

		public void OnIntroSpellStateFinished(Spell spell, SpellStateType prevStateType, object userData)
		{
			method_8("OnIntroSpellStateFinished", spell, prevStateType, userData);
		}

		public ShouldPlayValue ShouldPlayLongCutscene()
		{
			return method_11<ShouldPlayValue>("ShouldPlayLongCutscene", Array.Empty<object>());
		}

		public bool ShouldPlayLongMidmissionCutscene()
		{
			return method_11<bool>("ShouldPlayLongMidmissionCutscene", Array.Empty<object>());
		}

		public new void OnCustomIntroCancelled(Card friendlyHero, Card enemyHero, HeroLabel friendlyHeroLabel, HeroLabel enemyHeroLabel, GameStartVsLetters versusText)
		{
			method_8("OnCustomIntroCancelled", friendlyHero, enemyHero, friendlyHeroLabel, enemyHeroLabel, versusText);
		}
	}
}
